package com.dao;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;


import javax.naming.NamingException;

import utiles.ConexionDAO;

import com.dto.datosCamapanaEventoDTO;
import com.dto.datosCapaUserDTO;
import com.dto.datosSistemaDTO;
import com.dto.datosSubModDTO;
import com.dto.datosSystDTO;
import com.dto.datosUsuariosOficinaDTO;
import com.dto.datosVideoDTO;
import com.dto.datosVideoIdDTO;
import com.dto.datosVideoRolByIdVIdeoVO;
import com.dto.datosVideoRolEventoDTO;
import com.dto.datosVideoRolGrupoDTO;
import com.dto.preguntaVideoDTO;
import com.vo.inscripcionAlternativasVO;
import com.vo.inscripcionEvaluacionVO;
import com.vo.inscripcionVideoVO;
import com.vo.setVideoRolVO;
import com.vo.tiempoReprodVO;
import com.vo.updateTimeVideoVO;
import com.vo.updateVideoVO;
public class datosVideosDAO {

	public  List getdatosVideos() throws SQLException, IOException{
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();
		String min = "";
		String seg = "";
		String tduracion = "";
		String prefijoSiste = "";
		String prefijoSubsit = "";
		String prefijoModulo = "";
		String prefijoEvento = "";
		String prefijoCampana = "";
		String rutaSSM = "";
		String rutaCE = "";
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.DatosVideo() }");
			while (rs.next()) {
				datosVideoDTO BuscaDTO = new datosVideoDTO();	
				BuscaDTO.setCampana(rs.getString(1));
				BuscaDTO.setSistema(rs.getString(2));
				BuscaDTO.setSubsistema(rs.getString(3));
				BuscaDTO.setModulo(rs.getString(4));
				BuscaDTO.setFechacreacion(rs.getString(5));
				BuscaDTO.setFechalimite(rs.getString(6));
				min = rs.getString(7);
				int mint = 0;
				mint = Integer.parseInt(min);
				if(mint<9){
					min = min;
				}
				seg = rs.getString(8);
				int sint = 0;
				sint = Integer.parseInt(min);
				if(sint<9){
					seg = seg;
				}				
				tduracion = min+":"+seg;
				BuscaDTO.setTduracion(tduracion.toString());
				BuscaDTO.setJp(rs.getString(9));
				BuscaDTO.setActivacion(rs.getString(10));
				BuscaDTO.setEvento(rs.getString(11));
				BuscaDTO.setCampanaevento(rs.getString(12));	
				BuscaDTO.setIdVideo(rs.getString(13));
				prefijoSiste = rs.getString(14);
				prefijoSubsit = rs.getString(15);
				prefijoModulo = rs.getString(16);
				prefijoEvento = rs.getString(17);
				prefijoCampana = rs.getString(18);				
				rutaSSM = "ftp://ftpflv:qwe321@10.10.119.110/"+prefijoSiste+"/"+prefijoSubsit+"/"+prefijoModulo+"/"+rs.getString(19);
				rutaCE = "ftp://ftpflv:qwe321@10.10.119.110/"+prefijoCampana+"/"+prefijoEvento+"/Virtual/"+rs.getString(19);
				BuscaDTO.setRutaFTPSSM(rutaSSM);				
				BuscaDTO.setRutaFTPCEV(rutaCE);
				BuscaDTO.setIdSistema(rs.getString(20));
				BuscaDTO.setIdSubsistema(rs.getString(21));
				BuscaDTO.setIdModulo(rs.getString(22));
				BuscaDTO.setIdEvento(rs.getString(23));
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));
				System.out.println(rs.getString(5));
				System.out.println(rs.getString(6));
				System.out.println(tduracion);		
				System.out.println(rs.getString(9));
				System.out.println(rs.getString(10));
				System.out.println(rs.getString(11));
				System.out.println(rs.getString(12));*/
				listDatosVideos.add(BuscaDTO);			
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;		

	}
	
	public  List vodatosVideos(inscripcionVideoVO datos) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		int idVideo = 0;
		idVideo = connDao.getLastRow("ID_VIDEO", "CVI_VIDEO");
		idVideo = idVideo + 1;
		System.out.println("idVideo: "+idVideo);
		//System.out.println("nombre func:"+datos.getNfuncionalidad());
		try {
			stmt = conn.prepareCall("{call dbo.InscripcionVideo(?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
			stmt.setInt(1,idVideo);
			stmt.setString(2,datos.getNfuncionalidad());
			stmt.setString(3,datos.getNarchivo());
			stmt.setString(4,datos.getActivacion());
			stmt.setInt(5,Integer.parseInt(datos.getTduracionMin()));	
			stmt.setInt(6,Integer.parseInt(datos.getTduracionSeg()));
			stmt.setInt(7,Integer.parseInt(datos.getSistema()));
			stmt.setInt(8,Integer.parseInt(datos.getSubsistema()));
			stmt.setInt(9,Integer.parseInt(datos.getModulo()));
			stmt.setInt(10,Integer.parseInt(datos.getEventoid()));
			stmt.setString(11,datos.getJp());
			stmt.setInt(12,Integer.parseInt(datos.getOrdenVideo()));
			stmt.setInt(13,Integer.parseInt(datos.getCantSeg())-1);	
			stmt.setString(14,"User Prueba");			
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		List listDatosVideos = new ArrayList();			
		return listDatosVideos;		
	}
	
	public  List datosSistema() throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.DatosSistema() }");
			while (rs.next()) {
				datosSystDTO BuscaDTO = new datosSystDTO();	
				BuscaDTO.setId(rs.getString(1));
				BuscaDTO.setNombre(rs.getString(2));	
				BuscaDTO.setPrefijo(rs.getString(3));	
				//System.out.println(rs.getString(1));
				//System.out.println(rs.getString(2));
				//System.out.println(rs.getString(3));
				listDatosVideos.add(BuscaDTO);			
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	} 
	
	public  List datosSubSistema() throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.DatosSubsistema() }");
			while (rs.next()) {
				datosSubModDTO BuscaDTO = new datosSubModDTO();	
				BuscaDTO.setId(rs.getString(1));
				BuscaDTO.setNombre(rs.getString(2));	
				BuscaDTO.setIdSub(rs.getString(3));
				BuscaDTO.setPrefijo(rs.getString(4));
				//System.out.println(rs.getString(1));
				//System.out.println(rs.getString(2));
				//System.out.println(rs.getString(3));
				//System.out.println(rs.getString(4));
				listDatosVideos.add(BuscaDTO);			
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	} 
	
	public  List datosModulo() throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.DatosModulo() }");
			while (rs.next()) {
				datosSubModDTO BuscaDTO = new datosSubModDTO();	
				BuscaDTO.setId(rs.getString(1));
				BuscaDTO.setNombre(rs.getString(2));
				BuscaDTO.setIdSub(rs.getString(3));
				BuscaDTO.setPrefijo(rs.getString(4));
				//System.out.println("id: "+rs.getString(1)+" modulo: "+rs.getString(2)+" id subsistema: "+rs.getString(3)+" prefijo: "+rs.getString(4));		
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	} 
	
	public  List datosEvento() throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.DatosEvento() }");
			while (rs.next()) {
				datosSubModDTO BuscaDTO = new datosSubModDTO();	
				BuscaDTO.setId(rs.getString(2));
				BuscaDTO.setNombre(rs.getString(1));	
				BuscaDTO.setIdSub(rs.getString(3));
				BuscaDTO.setPrefijo(rs.getString(4));
				//System.out.println(rs.getString(1));
				//System.out.println(rs.getString(2));
				//System.out.println(rs.getString(3));
				//System.out.println(rs.getString(4));
				listDatosVideos.add(BuscaDTO);
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	} 
	
	public  List datosCamapana() throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.DatosCamapana() }");
			while (rs.next()) {				
				datosSystDTO BuscaDTO = new datosSystDTO();	
				BuscaDTO.setId(rs.getString(2));
				BuscaDTO.setNombre(rs.getString(1));	
				BuscaDTO.setPrefijo(rs.getString(3));	
				//System.out.println(rs.getString(1));
				//System.out.println(rs.getString(2));
				//System.out.println(rs.getString(3));
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	} 
	
	public  List SetupdateVideoVO(updateVideoVO datos) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		//System.out.println(datos.getIdVideo());
		//System.out.println(datos.getIdSistema());
		try {
			stmt = conn.prepareCall("{call dbo.UpdateVideos(?,?,?,?,?,?,?,?)}");
			stmt.setInt(1,Integer.parseInt(datos.getIdVideo()));
			stmt.setInt(2,Integer.parseInt(datos.getIdSistema()));
			stmt.setInt(3,Integer.parseInt(datos.getIdSubSist()));
			stmt.setInt(4,Integer.parseInt(datos.getIdModulo()));
			stmt.setString(5,datos.getFuncionalidad());
			stmt.setInt(6,Integer.parseInt(datos.getIdEvento()));	
			stmt.setString(7,datos.getNombArchivo());	
			stmt.setString(8,datos.getEstado());
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		List listDatosVideos = new ArrayList();			
		return listDatosVideos;		
	}
	
	public  List datosVideoId(String idVideo) throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.DatosVideoId("+Integer.parseInt(idVideo)+")}");
			while (rs.next()) {				
				datosVideoIdDTO BuscaDTO = new datosVideoIdDTO();
				String comp = "";
				comp = rs.getString(1);
				if(comp == null){
					BuscaDTO.setIdSistema(" ");
				}else{
				BuscaDTO.setIdSistema(rs.getString(1));
				}
				
				comp = "";
				comp = rs.getString(2);
				if(comp == null){
					BuscaDTO.setIdSubSistema(" ");
				}else{
				BuscaDTO.setIdSubSistema(rs.getString(2));
				}
				
				comp = "";
				comp = rs.getString(3);
				if(comp == null){
					BuscaDTO.setIdEvento(" ");
				}else{
				BuscaDTO.setIdEvento(rs.getString(3));
				}
				
				comp = "";
				comp = rs.getString(4);
				if(comp == null){
					BuscaDTO.setIdModulo(" ");
				}else{
				BuscaDTO.setIdModulo(rs.getString(4));
				}	
				
				comp = "";
				comp = rs.getString(5);
				if(comp == null){
					BuscaDTO.setNombreFuncion(" ");
				}else{
				BuscaDTO.setNombreFuncion(rs.getString(5));
				}	
				
				comp = "";
				comp = rs.getString(6);
				if(comp == null){
					BuscaDTO.setEstado(" ");
				}else{
				BuscaDTO.setEstado(rs.getString(6));
				}	
				
				comp = "";
				comp = rs.getString(7);
				if(comp == null){
					BuscaDTO.setCampana(" ");
				}else{
				BuscaDTO.setCampana(rs.getString(7));
				}	
				
				comp = "";
				comp = rs.getString(8);
				if(comp == null){
					BuscaDTO.setNombreArchivo(" ");
				}else{
				BuscaDTO.setNombreArchivo(rs.getString(8));
				}	
				
				comp = "";
				comp = rs.getString(9);
				if(comp == null){
					BuscaDTO.setPrefSistema(" ");
				}else{
				BuscaDTO.setPrefSistema(rs.getString(9));
				}
				
				comp = "";
				comp = rs.getString(10);
				if(comp == null){
					BuscaDTO.setPrefSubSiste(" ");
				}else{
				BuscaDTO.setPrefSubSiste(rs.getString(10));
				}
				
				comp = "";
				comp = rs.getString(11);
				if(comp == null){
					BuscaDTO.setPrefEvento(" ");
				}else{
				BuscaDTO.setPrefEvento(rs.getString(11));
				}

				comp = "";
				comp = rs.getString(12);
				if(comp == null){
					BuscaDTO.setPrefCampana(" ");
				}else{
				BuscaDTO.setPrefCampana(rs.getString(12));
				}

				comp = "";
				comp = rs.getString(13);
				if(comp == null){
					BuscaDTO.setPrefModulo(" ");
				}else{
				BuscaDTO.setPrefModulo(rs.getString(13));
				}				
				/*
				System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));
				System.out.println(rs.getString(5));
				System.out.println(rs.getString(6));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	} 
	
	
	public  List SetupdateTimeVideoVO(updateTimeVideoVO datos) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		//System.out.println(datos.getIdVideo());
		//System.out.println(datos.getMinutos());
		//System.out.println(datos.getSegundos());
		try {
			stmt = conn.prepareCall("{call dbo.UpdateTimeVideo(?,?,?)}");
			stmt.setInt(1,Integer.parseInt(datos.getIdVideo()));
			stmt.setInt(2,Integer.parseInt(datos.getMinutos()));
			stmt.setInt(3,Integer.parseInt(datos.getSegundos()));
			
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		List listDatosVideos = new ArrayList();			
		return listDatosVideos;		
	}
	
	public  List setUpdateVideoEstado(String idVideo, String estado) throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.updateVideoEstado("+Integer.parseInt(idVideo)+","+estado+") }");
			
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			//System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	} 
	
	public  List tiempoReprodVideos(tiempoReprodVO datos) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		try {
			/*System.out.println(datos.getIdUsuario());
			System.out.println(datos.getIdVideo());
			System.out.println(datos.getEstadoAcceso());
			System.out.println(datos.getTiempoMin());
			System.out.println(datos.getTiempoSeg());*/
			stmt = conn.prepareCall("{call dbo.TiempoReprodUser(?,?,?,?,?)}");
			stmt.setInt(1,Integer.parseInt(datos.getIdUsuario()));
			stmt.setInt(2,Integer.parseInt(datos.getIdVideo()));
			stmt.setInt(3,Integer.parseInt(datos.getEstadoAcceso()));
			stmt.setInt(4,Integer.parseInt(datos.getTiempoMin()));
			stmt.setInt(5,Integer.parseInt(datos.getTiempoSeg()));
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		List listDatosVideos = new ArrayList();			
		return listDatosVideos;		
	}
	
	public List setVideoRolGrupal(setVideoRolVO datos) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		int idVideoRol = 0;
		idVideoRol = connDao.getLastRow("ID_CTRL_GRUPAL", "CVI_CTRL_ACC_GRUPAL");
		idVideoRol = idVideoRol + 1;
		//System.out.println("rol: "+Integer.parseInt(datos.getIdRol())+" prod:"+Integer.parseInt(datos.getIdProducto()));
		try {
			stmt = conn.prepareCall("{call dbo.setVideoGrupo(?,?,?,?,?,?)}");
			stmt.setInt(1,idVideoRol);
			stmt.setInt(2,Integer.parseInt(datos.getIdSistema()));
			stmt.setInt(3,Integer.parseInt(datos.getIdSubSistema()));
			stmt.setInt(4,Integer.parseInt(datos.getIdModulo()));	
			stmt.setInt(5,Integer.parseInt(datos.getIdRol()));
			stmt.setInt(6,Integer.parseInt(datos.getIdProducto()));	
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		List listDatosVideos = new ArrayList();			
		return listDatosVideos;	
	}
	
		
	public  List setVideoRol3(setVideoRolVO datos) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		int idVideoRol = 0;
		idVideoRol = connDao.getLastRow("ID_CTRL_INDIVID", "CVI_CTRL_ACC_INDIVIDUAL");
		idVideoRol = idVideoRol + 1;
		//System.out.println(datos.getIdVideo());
		//System.out.println(datos.getIdRol());
		//System.out.println(datos.getIdProducto());
		//System.out.println("IDVIDEOROL: "+idVideoRol);
		try {
			stmt = conn.prepareCall("{call dbo.setVideoRol(?,?,?,?)}");
			stmt.setInt(1,idVideoRol);
			stmt.setInt(2,Integer.parseInt(datos.getIdVideo()));
			stmt.setInt(3,Integer.parseInt(datos.getIdRol()));
			stmt.setInt(4,Integer.parseInt(datos.getIdProducto()));			
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		List listDatosVideos = new ArrayList();			
		return listDatosVideos;		
	}
	
	public  List setVideoEvento(setVideoRolVO datos) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		int idVideoRol = 0;
		idVideoRol = connDao.getLastRow("ID_CTRL_EVENTO", "CVI_CTRL_ACC_EVENTO");
		idVideoRol = idVideoRol + 1;
		//System.out.println(datos.getIdVideo());
		//System.out.println(datos.getIdRol());
		//System.out.println(datos.getIdProducto());
		//System.out.println("IDVIDEOROL: "+idVideoRol);
		try {
			stmt = conn.prepareCall("{call dbo.setVideoEvento(?,?,?,?,?)}");
			stmt.setInt(1,idVideoRol);
			stmt.setInt(2,Integer.parseInt(datos.getIdEvento()));
			stmt.setInt(3,Integer.parseInt(datos.getIdCampana()));
			stmt.setInt(4,Integer.parseInt(datos.getIdRol()));
			stmt.setInt(5,Integer.parseInt(datos.getIdProducto()));			
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		List listDatosVideos = new ArrayList();			
		return listDatosVideos;		
	}

	public  List getDatosRolVideobyVideoId(String idVideo) throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.GetDatosRolVideoByVideo("+idVideo+")}");
			while (rs.next()) {				
				datosVideoRolByIdVIdeoVO BuscaDTO = new datosVideoRolByIdVIdeoVO();	
				BuscaDTO.setIdVideo(rs.getString(1));	
				BuscaDTO.setNombreVideo(rs.getString(2));		
				BuscaDTO.setIdRol(rs.getString(3));
				BuscaDTO.setNombreRol(rs.getString(4));	
				BuscaDTO.setIdProducto(rs.getString(5));		
				BuscaDTO.setNombreProducto(rs.getString(6));
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));
				System.out.println(rs.getString(5));
				System.out.println(rs.getString(6));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	}	
	
	public  List getDatosRolVideobyAccGrupal(String idSistema, String idSust, String idmodulo) throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.GetDatosRolVideoByAccGrupal("+idSistema+","+idSust+","+idmodulo+")}");
			while (rs.next()) {				
				datosVideoRolByIdVIdeoVO BuscaDTO = new datosVideoRolByIdVIdeoVO();	
				BuscaDTO.setIdVideo(rs.getString(1));	
				BuscaDTO.setNombreVideo(rs.getString(2));		
				BuscaDTO.setIdRol(rs.getString(3));
				BuscaDTO.setNombreRol(rs.getString(4));	
				BuscaDTO.setIdProducto(rs.getString(5));		
				BuscaDTO.setNombreProducto(rs.getString(6));
				BuscaDTO.setIdSistema(rs.getString(7));	
				BuscaDTO.setIdSubSistema(rs.getString(8));		
				BuscaDTO.setIdModulo(rs.getString(9));
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));
				System.out.println(rs.getString(5));
				System.out.println(rs.getString(6));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	}
	
	public  List getDatosRolVideobyAccEvento(String Campana, String Evento) throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.GetDatosRolVideoByAccEvento("+Evento+","+Campana+")}");
			while (rs.next()) {				
				datosVideoRolByIdVIdeoVO BuscaDTO = new datosVideoRolByIdVIdeoVO();	
				BuscaDTO.setIdVideo(rs.getString(1));	
				BuscaDTO.setNombreVideo(rs.getString(2));		
				BuscaDTO.setIdRol(rs.getString(3));
				BuscaDTO.setNombreRol(rs.getString(4));	
				BuscaDTO.setIdProducto(rs.getString(5));		
				BuscaDTO.setNombreProducto(rs.getString(6));
				BuscaDTO.setIdCampana(rs.getString(7));		
				BuscaDTO.setIdEvento(rs.getString(8));				
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));
				System.out.println(rs.getString(5));
				System.out.println(rs.getString(6));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	}
	
	public  List delVideoRolRel(String idVideo, String idRol, String idProd) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		try {
			stmt = conn.prepareCall("{call dbo.DelVideoRolRel(?,?,?)}");
			stmt.setInt(1,Integer.parseInt(idVideo));
			stmt.setInt(2,Integer.parseInt(idRol));
			stmt.setInt(3,Integer.parseInt(idProd));		
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		List listDatosVideos = new ArrayList();			
		return listDatosVideos;			
	}
	
	public  List delVideoRolRelAccGrupal(String idRol, String idProd, String idSis, String idSubsis, String idMod ) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		//System.out.println("idVideo: "+idVideo+" idRol: "+idRol+" idProd: "+idProd);
		try {
			stmt = conn.prepareCall("{call dbo.DelVideoRolRelAccGrupal(?,?,?,?,?)}");
			stmt.setInt(1,Integer.parseInt(idRol));
			stmt.setInt(2,Integer.parseInt(idProd));	
			stmt.setInt(3,Integer.parseInt(idSis));
			stmt.setInt(4,Integer.parseInt(idSubsis));
			stmt.setInt(5,Integer.parseInt(idMod));
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		List listDatosVideos = new ArrayList();			
		return listDatosVideos;			
	}
	
	public  List delVideoRolRelEvento(String idRol, String idProd, String idCampana, String idEvento) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		//System.out.println("idVideo: "+idVideo+" idRol: "+idRol+" idProd: "+idProd);
		try {
			stmt = conn.prepareCall("{call dbo.DelVideoRolRelAccEvento(?,?,?,?)}");
			stmt.setInt(1,Integer.parseInt(idRol));
			stmt.setInt(2,Integer.parseInt(idProd));
			stmt.setInt(3,Integer.parseInt(idCampana));
			stmt.setInt(4,Integer.parseInt(idEvento));
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		List listDatosVideos = new ArrayList();			
		return listDatosVideos;			
	}
	
	public  List getDatosSistemas() throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.LeerSistemas }");
			while (rs.next()) {				
				datosSistemaDTO BuscaDTO = new datosSistemaDTO();	
				BuscaDTO.setIdSistema(rs.getString(1));	
				BuscaDTO.setnSistema(rs.getString(2));		
				BuscaDTO.setIdSubsistema(rs.getString(3));
				BuscaDTO.setnSubsistema(rs.getString(4));	
				BuscaDTO.setIdModulo(rs.getString(5));		
				BuscaDTO.setnModulo(rs.getString(6));
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));
				System.out.println(rs.getString(5));
				System.out.println(rs.getString(6));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	}
	
	public  List getDatosEventoCampa() throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.leeEventoCampana}");
			while (rs.next()) {				
				datosCamapanaEventoDTO BuscaDTO = new datosCamapanaEventoDTO();	
				BuscaDTO.setIdCampana(rs.getString(1));	
				BuscaDTO.setNomCampana(rs.getString(2));		
				BuscaDTO.setIdEvento(rs.getString(3));
				BuscaDTO.setNombEvento(rs.getString(4));
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	}
	
	public  List getUsuariosByOficina() throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.CapDif_LeerUsuarioPorOficina(0,0)}");
			while (rs.next()) {				
				datosUsuariosOficinaDTO BuscaDTO = new datosUsuariosOficinaDTO();	
				BuscaDTO.setRutUser(rs.getString(1));	
				BuscaDTO.setNomUser(rs.getString(3));		
				BuscaDTO.setUser(rs.getString(7));
				BuscaDTO.setCodOficina(rs.getString(9));
				BuscaDTO.setNomOficina(rs.getString(13));
				BuscaDTO.setTieneCapa(rs.getString(14));
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	}
	
	public Integer setEvaluacionPregunta(inscripcionEvaluacionVO datos) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		int idVideoPregunta= 0;
		idVideoPregunta = connDao.getLastRow("ID_EVA_PREG", "CVI_EVAVID_PREG");
		idVideoPregunta = idVideoPregunta + 1;
		try {
			stmt = conn.prepareCall("{call dbo.IncripcionPregunta(?,?,?,?)}");
			stmt.setInt(2,idVideoPregunta);
			stmt.setInt(1,Integer.parseInt(datos.getIdVideo()));
			stmt.setString(3,datos.getPregunta());
			stmt.setInt(4,Integer.parseInt(datos.getTiempoMax()));		
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}	
		return idVideoPregunta;		
	}
	
	public List inscripcionaAlternativas(List datos) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		inscripcionAlternativasVO recividos = new inscripcionAlternativasVO();
		int idPregunta = 0;
		String respuesta = "";
		int correcta = 0;
		int llama = 0;
		for (int i=0;i<datos.size();i++)		
		{
			recividos = (inscripcionAlternativasVO)datos.get(i);
			idPregunta = Integer.parseInt( recividos.getIdPregunta());
			respuesta = recividos.getRespuesta();
			correcta = Integer.parseInt( recividos.getCorrecta());
			llama = setAlternativaPregunta(idPregunta, respuesta, correcta);
			//System.out.println("idPregunta: "+idPregunta+" respuesta: "+respuesta+" correcta: "+correcta);
			idPregunta = 0;
			respuesta = "";
			correcta = 0;
		}		
		List listDatosVideos = new ArrayList();	
		return listDatosVideos;	
	}
	
	public static int setAlternativaPregunta(int idPregunta, String respuesta, int correcta) throws SQLException, IOException, NamingException{	
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		int idRespuesta= 0;
		idRespuesta = connDao.getLastRow("ID_EVE_RPTA", "CVI_EVAVID_RPTA");
		idRespuesta = idRespuesta + 1;	
		//System.out.println(idRespuesta+","+idPregunta+","+respuesta+","+correcta);
		try {
			stmt = conn.prepareCall("{call dbo.InscripcionAlternativas(?,?,?,?)}");
			stmt.setInt(1,idRespuesta);
			stmt.setInt(2,idPregunta);
			stmt.setString(3,respuesta);
			stmt.setInt(4,correcta);
			stmt.execute();	
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		int hola = 0;		
		return hola;			
	}
	
	public  List getPreguntaVideo(String idVideo) throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.leeroreguntavideo("+idVideo+")}");
			while (rs.next()) {				
				preguntaVideoDTO BuscaDTO = new preguntaVideoDTO();	
				BuscaDTO.setNombVideo(rs.getString(1));	
				BuscaDTO.setStrPrgunta(rs.getString(2));		
				BuscaDTO.setIdVideo(rs.getString(3));
				BuscaDTO.setIdPRegunta(rs.getString(4));
				BuscaDTO.setIdRespuesta(rs.getString(5));
				BuscaDTO.setStrRespuesta(rs.getString(6));
				BuscaDTO.setTipocorresta(rs.getString(7));
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	}
	
	public  List delPreguntaVideo(String idPregunta) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.delPreguntaVideo("+idPregunta+")}");			
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;			
	}
	
	public List setInscripicionCapa(String idVideo, String idUser, String idAsignador) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		int idCapa= 0;
		idCapa = connDao.getLastRow("ID_CAPA_USR", "CVI_CAPA_USR");
		idCapa = idCapa + 1;	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.AsginaCapacitacion("+idCapa+","+Integer.parseInt(idVideo)+","+idUser+","+idAsignador+")}");			
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;			
	}
	
	public  List updatePregunta(String idPregunta, String pregunta) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		try {
			stmt = conn.prepareCall("{call dbo.updtPregunta(?,?)}");
			stmt.setInt(1,Integer.parseInt(idPregunta));
			stmt.setString(2, pregunta);
			stmt.execute();			
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		List listDatosVideos = new ArrayList();			
		return listDatosVideos;		
	}
	
	public List updateAlternativas(List datos) throws SQLException, IOException, NamingException{		
		ConexionDAO connDao = new ConexionDAO();
		inscripcionAlternativasVO recividos = new inscripcionAlternativasVO();
		int idPregunta = 0;
		String respuesta = "";
		int correcta = 0;
		int llama = 0;
		for (int i=0;i<datos.size();i++)		
		{
			recividos = (inscripcionAlternativasVO)datos.get(i);
			idPregunta = Integer.parseInt( recividos.getIdRespuesta());
			respuesta = recividos.getRespuesta();
			correcta = Integer.parseInt( recividos.getCorrecta());
			llama = updateAlternativs(idPregunta, respuesta, correcta);
			//System.out.println("idPregunta: "+idPregunta+" respuesta: "+respuesta+" correcta: "+correcta);
			idPregunta = 0;
			respuesta = "";
			correcta = 0;
		}		
		List listDatosVideos = new ArrayList();	
		return listDatosVideos;	
	}
	
	public static int updateAlternativs(int idPregunta, String respuesta, int correcta) throws SQLException, IOException, NamingException{	
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		java.sql.CallableStatement stmt = null;
		//System.out.println(idRespuesta+","+idPregunta+","+respuesta+","+correcta);
		try {
			stmt = conn.prepareCall("{call dbo.updtRespues(?,?,?)}");
			stmt.setInt(1,idPregunta);
			stmt.setString(2,respuesta);
			stmt.setInt(3,correcta);
			stmt.execute();	
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		
		int hola = 0;		
		return hola;			
	}
	
	public  List getVideosCapa(String iduser, String rutUser) throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.videoCapacitacionByUser("+iduser+","+Integer.parseInt(rutUser)+")}");
			while (rs.next()) {				
				datosCapaUserDTO BuscaDTO = new datosCapaUserDTO();	
				BuscaDTO.setCampana(rs.getString(1));	
				BuscaDTO.setSistema(rs.getString(2));		
				BuscaDTO.setSubsistema(rs.getString(3));
				BuscaDTO.setModulo(rs.getString(4));
				BuscaDTO.setFuncion(rs.getString(5));
				BuscaDTO.setTduracion(rs.getString(6));
				/*BuscaDTO.setTvisto(rs.getString(7));
				BuscaDTO.setUltlectura(rs.getString(8));
				BuscaDTO.setEstado(rs.getString(9));
				BuscaDTO.setRespustasc(rs.getString(10));
				BuscaDTO.setRespustase(rs.getString(11));
				BuscaDTO.setSesiones(rs.getString(12));
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	}
	
	public  List getdatosVideoRolGrupo(String idProducto, String idRol) throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.videosRolGrupo("+Integer.parseInt(idProducto)+","+Integer.parseInt(idRol)+")}");
			while (rs.next()) {				
				datosVideoRolGrupoDTO BuscaDTO = new datosVideoRolGrupoDTO();	
				BuscaDTO.setFuncion(rs.getString(1));	
				BuscaDTO.setIdSistema(rs.getString(2));		
				BuscaDTO.setIdSubsistema(rs.getString(3));
				BuscaDTO.setIdmodulo(rs.getString(4));
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	}
	
	public  List getdatosVideoRolEvento(String idProducto, String idRol) throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.videosRolEvento("+Integer.parseInt(idProducto)+","+Integer.parseInt(idRol)+")}");
			while (rs.next()) {				
				datosVideoRolEventoDTO BuscaDTO = new datosVideoRolEventoDTO();	
				BuscaDTO.setFuncion(rs.getString(1));	
				BuscaDTO.setIdModulo(rs.getString(2));		
				BuscaDTO.setIdEvento(rs.getString(3));
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	}
	
	public  List getdatosVideoRolIndividual(String idProducto, String idRol) throws SQLException, IOException{		
		ConexionDAO connDao = new ConexionDAO();
		Connection conn = connDao.getConnection();
		List listDatosVideos = new ArrayList();	
		try{
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("{ ? =call dbo.videosRolIndiv("+Integer.parseInt(idProducto)+","+Integer.parseInt(idRol)+")}");
			while (rs.next()) {				
				datosVideoRolEventoDTO BuscaDTO = new datosVideoRolEventoDTO();	
				BuscaDTO.setFuncion(rs.getString(1));	
				BuscaDTO.setIdModulo(rs.getString(2));
				/*System.out.println(rs.getString(1));
				System.out.println(rs.getString(2));*/
				listDatosVideos.add(BuscaDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}
		return listDatosVideos;	
	}
	
	public static void main(String[] args) throws NamingException {
		datosVideosDAO carga = new datosVideosDAO();
		
		try {
			carga.getdatosVideoRolIndividual("6","1");
		} catch (SQLException e) {
		
			e.printStackTrace();
		} catch (IOException e) {
		
			e.printStackTrace();
		}
	}


}
